Method and apparatus for tracking user location within video or audio content streamed to a mobile handset

ABSTRACT

A method and apparatus for providing audio or video content to a mobile handset is provided.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, and claims priority to, U.S. patent application Ser. No. 11/788,494, filed on Apr. 20, 2007, incorporated herein by reference.

FIELD OF THE INVENTION

The invention relates generally to a method and apparatus for providing video or audio content to a mobile handset.

BACKGROUND OF THE INVENTION

In recent years, mobile handsets (such as cellular phones and PDAs) have become more powerful and now offer additional functionality beyond just voice communication. For instance, many mobile handset devices today allow users to perform web browsing on the Internet, receive emails, and play video and audio content streamed from over a wireless network. Such devices contain increasingly powerful processors and enhanced video and audio capability. However, their storage capacity is generally much smaller than the capacity of PCs and notebook computers. As a result, users of mobile handsets are reliant upon video and audio content that is streamed rather than downloaded and stored permanently. The mobile handsets also tend to have relatively small buffers in which to store the streamed data before it is played on the mobile handset.

If a mobile handset user wishes to stop listening to streamed audio content or watching streamed video content while the content is still playing, then the mobile handset will stop playing the content and will inform the source of the streaming data (usually a server connected to the wireless network) to stop streaming the data. It would be desirable for the server or other source device to be able to keep track of the user's location (e.g., the number of bits from the beginning of the content, amount of time that elapsed since the content began playing, or some other measure) within the content when he or she stops the content, so that the user can continue playing the data at the same location at a later time.

Digital content often is broken into sub-sections (e.g., chapters in a DVD movie) by the provider of the source content. Under current mobile handset technology, if a user wishes to begin playing the content at a place other than the beginning section, then the mobile handset must first begin playing at the beginning section and then move to the desired section and begin playing at the desired section. It takes approximately 15 seconds to begin playing any given section (which corresponds to the time it takes to fill the buffer in the mobile handset with data), so the end result in this scenario is that the user will need to wait approximately 30 seconds before he or she can begin listening to or watching the desired section. It would be desirable for a user to be able to begin listening to or watching any section of the content with only one buffer delay instead of two.

SUMMARY OF THE INVENTION

In accordance with the invention, a method and apparatus are provided to keep track of a user's location within streamed audio or video data when a user stops the playing of the content, and to enable the user to resume playing the content at the same location at a later time.

In accordance with another aspect of the invention, a method and apparatus are provided to enable a user to begin streamed audio or video data at a section other than the first section while incurring only one buffer delay period.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a mobile handset device service system;

FIG. 2 illustrates an example of a mobile handset device that graphically shows the user's location within content that is being played on the handset.

FIG. 3 is a flow chart depicting an embodiment for keeping track of a user's location within digital content to enable the user to resume playback at that same location at a later time.

FIG. 4 illustrates the prior art method of dividing digital content into blocks of approximately 30 minutes in duration, and further dividing each block into divisions such as chapters.

FIG. 5 illustrates an example of a means for permitting a user to begin playing digital content at a location other than the first division, and doing so without reducing the total 30 minute duration before switching to the next block.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

FIG. 1 depicts a typical mobile handset service system 20. The mobile device service system 20 provide one or more services, such as movies, videos, sports information, music, etc. to a mobile handset 22 that includes a client application, such as a JAVA piece of code, that processes the incoming service data and displays the service data to the user of the mobile device. The mobile handset 22 may be any processing unit based device that is hand-sized with sufficient processing power, memory, display and connectivity capabilities to execute the client application, receive the service data and display that service data. For example, the mobile device may be a PDA, mobile phone, or wireless email device (such as the Blackberry). In the example shown in FIG. 1, the mobile device 22 couples to a communications link 24, such as the Internet, over a wireless network 26 and a firewall 28. The mobile handset service system 20 also has a service unit 30 that performs various function and operations for the mobile handset service system.

The service unit 30 may include a user information storage unit 32 that stores information about each user of the mobile handset service system including user billing information and user service personalization information. The service unit 30 may also have a billing server 34 that performs a billing operation for the services provided to the user. In the example shown in FIG. 1, the billing for the services are communicated over a secure link 36, such as a secure socket layer (SSL) connection, to a carrier billing system 38 so that the mobile device carrier can provide the bill for the services on the monthly invoice of the user of the mobile device. Alternatively, the service unit 30 can directly bill the user. The service unit 30 may also include a live content ingester 40, a clip digester 42 and a content/asset storage unit 44 that handle the service content (such as music, movies, etc.) from a third party 46 that will be delivered by the mobile handset service system. The live content ingester receives any live content and processes it and then stores the live content in the content/asset storage unit 44 in various output encoding file formats. The clip digester 42 receives non-live content and data, processes it and then stores the clips in the storage unit 44 in various output encoding and file formats.

The service unit 30 may further include a menu/personalization unit 48, a reporting unit 50, a streaming unit 52, a log database 54 and a data mining unit 56. The menu/personalization unit 48, the reporting unit 50, the streaming unit 52 and the data mining unit 56 may preferably each be server computers. The menu/personalization unit generates and delivers the mobile device service user interfaces to the user that may also be customized by the user based on the customization information stored in the user information storage unit 32. The streaming unit may preferably support the real-time streaming protocol (RTSP) and the hypertext transfer protocol (HTTP) and may deliver/stream the service content to the mobile device over the link 24. The streaming unit may request the service content from the content store 44 and may store service content information in the log store 54. The reporting unit 50 may generate a report about various aspects of the service unit and its operations. The data mining unit 56 collects user behavior information which is then mined to determine any recommendations and personalizations for users of the system.

A user of mobile handset 22 can run various applications on the handset, such as an application that enables the user to listen to music, an audiobook or eBook, or other audio programming or to watch a movie, TV show, or other video content streamed from streaming unit 52. In one embodiment of the invention, streaming unit 52 will send the digital content to the mobile handset 22 and will also send metadata to the mobile handset 22. The metadata can include information such as the title of the song or video, the duration of the song or video, etc. The metadata also can include a URL for a website housed on third-party server 58 that offers products for sale that are relevant to the content being streamed to mobile handset 22. Examples of such products might include ringtones that contain the same music being streamed to mobile handset 22, CDs containing the same music, DVDs containing the video being streamed to mobile handset 22, etc.

Referring now to FIG. 2, mobile handset 22 is shown in greater detail. It is to be understood that FIG. 2 is exemplary and that the invention is not limited to the particular aesthetic or functional features displayed in FIG. 2. Mobile handset 22 includes a video display 60. Mobile handset 22 includes a speaker (not shown) that generates audio content. Thus, a user of mobile handset 22 can watch video content of video display 60 and listen to audio content through a speaker. In FIG. 2, video display 60 shows an exemplary user interface for one embodiment of the invention. The video display 60 shows a movie being streamed to mobile handset 22 by streaming unit 52. It shows a graphic depiction 62 showing the user's location within the movie (or within a chapter or other sub-part of the movie). The length of the movie (or of the chapter or other sub-part) was transmitted to mobile handset 22 as metadata. Mobile handset 22 measures the user's location within the movie (which corresponds to graphic depiction 62) by initiating a timer when the content begins playing. The timer can be implemented in hardware or software. The timer can be based on any time metric—e.g., minutes, seconds, microseconds, clock cycles, etc.

Referring now to FIG. 3, one embodiment is shown. A mobile handset 22 receives a command from a user to begin playing certain digital content. Mobile handset 22 then requests that content from service unit 30. Service unit 30 then begins streaming that content and associated metadata to mobile handset 22 (70). Mobile handset 22 fills its buffer with a portion of the content and then initiates a timer and begins playing the streamed content (72). At a later point in time, mobile handset 22 receives a command from the user to stop playing the streamed content (74). Mobile handset 22 then transmits the content of the timer (or data that corresponds to the content of the timer) to service unit 30 (76). For example, the content of the timer might comprise the time that elapsed since the beginning of the movie. Service unit 30 then records the content of the timer (or data that corresponds to the content of the timer) in a log that is associated with that particular user and/or mobile handset 22 (78). The log entry will reflect the user's location within the content at the time the content stopped playing on mobile handset 22. At some later time, mobile handset 22 transmits a command to service unit 30 to resume streaming of the same content (80). Service unit 30 reads the log entry and informs mobile handset 22 of the user's prior location within the content (82). If mobile handset 22 informs service unit 30 that it wishes to resume playback at that location, service unit 30 will begin streaming the content at the location identified in the log (84).

Referring now to FIGS. 4 and 5, another embodiment is shown. Video digital content is often divided into parts (e.g., chapters in a movie). In FIG. 4, exemplary video content 90 is shown. As an example, video content 90 is shown as a movie consisting of nine chapters, and for illustrative purposes, each chapter is assumed to be ten minutes long. Under current mobile handset technology, the total maximum size of a data block to be streamed is limited to approximately 30 minutes. This is because the timer of mobile handset 22 currently can only count up to approximately 30 minutes. Thus, if the user of mobile handset 22 watches a streamed movie that is 90 minutes long, service unit 30 will need to break the entire movie into sub-parts, each of a maximum size of 30 minutes. One approach 91 would be to stream a first block of 30 minutes, then a second block of 30 minutes, then a third block of 30 minutes. This means that video content 90 will be divided into 3 blocks of 30 minutes, which in our example breaks down to 3 chapters per block. Between each block, there will be a delay to the user of approximately 15 seconds as the buffer of mobile handset 22 fills with the beginning of the next block.

Under this approach, if a user wishes to begin watching the movie at chapter 2 (instead of at chapter 1), service unit 30 will stream data block 91 to mobile handset 22. Mobile handset will then fill its buffer with the beginning of chapter 1(which results in a 15 second delay), then momentarily begins playing chapter 1 and then skips to chapter 2 (which results in another 15 second delay). Thus, there will be a 30 second delay before chapter 2 begins playing. Also, because the total data block size is limited to 30 minutes, the amount of time remaining before service unit 30 will need to switch to the next data block (this is analogous to switching tapes in a traditional movie projector) will now be less than 30 minutes (more specifically, 30 minutes minus the length of chapter 1).

In FIG. 5, a different approach is depicted. Service unit 30 instead creates and stores a number of different data blocks, each with a unique starting location—one beginning with chapter 1 (92), one beginning with chapter 2 (94), one beginning at chapter 3 (96), etc. The end result is that if the user wishes to begin playing the movie at chapter 2, service unit 30 will then stream block 94 to mobile handset 22, and there will be only one 15 second delay while the buffer fills with the beginning of data block 94. Also, there will now be 30 minutes before service unit 30 will need to switch to the next data block. It will be understood by one of skill in the art that the data blocks can be any type of digital data (video, music, etc.), and that the chapters can be any type of division of such data (chapters, tracks, etc.).

The methodology shown in FIG. 5 is useful any time the user wants to begin at a location other than the beginning of chapter 1, including the situation where he or she wishes to resume playback at the same location where he or she previously stopped watching or listening, or the situation where he or she wants to begin playing at that location the very first time he or she requests that content. For the resume playback situation, if the user's prior location does not neatly align with the beginning of chapters or tracks, then service unit 30 can create a new data block “on the fly,” with the new data block beginning at the precise location where the user previously left off. This will ensure that only one 15 second buffer delay is incurred, and will maximize the amount of time before the next data block is streamed (i.e., to ensure that the next 15 second buffer delay will occur a full 30 minutes later instead of some amount of time less than 30 minutes).

It would be understood by one of skill in the art that the size of the buffer described above (15 seconds worth of data) is illustrative and not limiting. The embodiments described herein can be applied regardless of the size of the buffer. Similarly, the limit on maximum data block size described above (30 minutes worth of data), the size and number of chapters, the type of underlying digital content, and the number of chapters per block also are illustrative and not limiting. The embodiments described herein can be applied regardless of the maximum size of the data blocks.

While the foregoing has been with reference to particular embodiments of the invention, it will be appreciated by those skilled in the art that changes in these embodiments may be made without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims. 

What is claimed:
 1. A method for resuming playback of streamed digital content at a location where the playing of said content previously was stopped, comprising: providing content for playback on a mobile handset; receiving a first request to stop playback of said content on said mobile handset; stopping playback of said content on said mobile handset in response to said first request; maintaining location information identifying a location within said content where playback of said content on said mobile handset was stopped; receiving a second request to resume playback of said content on said mobile handset; and resuming playback of said content on said mobile handset based on said location information in response to said second request.
 2. The method of claim 1, wherein providing content for playback on a mobile handset comprises streaming said content to said mobile handset.
 3. The method of claim 1, further comprising: starting a timer upon providing content for playback on said mobile handset; and stopping said timer upon receiving said first request; wherein said location information is based on time elapsed between starting said timer and stopping said timer.
 4. The method of claim 1, further comprising: partitioning said content into multiple data blocks based on a maximum block size; and streaming said multiple data blocks to said mobile handset one block at a time.
 5. The method of claim 1, wherein receiving a first request to stop playback of said content on said mobile handset comprises receiving a user command to stop playback of said content on said mobile handset.
 6. The method of claim 1, further comprising: generating multiple data blocks, wherein each data block represents a portion of said content, and wherein each portion represented by each data block has a unique starting location within said content.
 7. The method of claim 6, wherein: said second request comprises a request to resume playback of said content on said mobile handset at a precise location within said content, wherein said precise location is one of the following: said location within said content where playback of said content on said mobile handset was stopped, and a user-specified location that differs from said location within said content where playback of said content on said mobile handset was stopped; and the method further comprises: determining which one of said multiple data blocks has a starting location that aligns with said precise location; wherein playback of said content on said mobile handset is resumed at said precise location by streaming a data block having a starting location that aligns with said precise location to said mobile handset.
 8. The method of claim 7, further comprising: generating a new data block upon determining that none of said multiple data blocks has a starting location that aligns with said precise location, wherein playback of said content on said mobile handset is resumed at said precise location by streaming said new data block to said mobile handset.
 9. The method of claim 6, wherein each data block represents one of the following: a chapter of said content or a track of said content.
 10. The method of claim 1, wherein said content comprises one or more of: audio content and video content.
 11. A system for resuming playback of streamed digital content at a location where the playing of said content previously was stopped, comprising: a service unit configured to: stream content to a mobile handset; receive a first request from said mobile handset to stop playback of said content on said mobile handset; stop streaming of said content to said mobile handset in response to said first request; maintain location information identifying a location within said content where streaming of said content to said mobile handset was stopped; receive a second request from said mobile handset to resume streaming of said content to said mobile handset; and resume streaming of said content to said mobile handset based on said location information in response to said second request.
 12. The system of claim 11, wherein the service unit is further configured to: start a timer upon initiating said streaming of said content to said mobile handset; and stop said timer upon receiving said first request; wherein said location information is based on time elapsed between the start and stop of said timer.
 13. The system of claim 11, wherein the service unit is further configured to: partition said content into multiple data blocks based on a maximum block size; and stream said multiple data blocks to said mobile handset one block at a time.
 14. The system of claim 11, wherein the service unit is further configured to: generate multiple data blocks, wherein each data block represents a portion of said content, and wherein each portion represented by each data block has a unique starting location within said content.
 15. The system of claim 14, wherein: said second request comprises a request to resume playback of said content on said mobile handset at a precise location within said content, wherein said precise location is one of the following: said location within said content where playback of said content on said mobile handset was stopped, and a user-specified location that differs from said location within said content where playback of said content on said mobile handset was stopped; and the service unit is further configured to: determine which one of said multiple data blocks has a starting location that aligns with said particular location; wherein streaming of said content to said mobile handset is resumed at said particular location by streaming a data block having a starting location that aligns with said particular location to said mobile handset.
 16. The system of claim 15, wherein the service unit is further configured to: generate a new data block upon determining that none of said multiple data blocks has a starting location that aligns with said particular location, wherein streaming of said content to said mobile handset is resumed at said particular location by streaming said new data block to said mobile handset.
 17. The system of claim 14, wherein each data block represents one of the following: a chapter of said content, a track of said content.
 18. The system of claim 11, wherein said content comprises one or more of: audio content and video content.
 19. A non-transitory computer-readable medium including instructions which when executed on a computer performs a method comprising: providing content for playback on a mobile handset; receiving a first request to stop playback of said content on said mobile handset; stopping playback of said content on said mobile handset in response to said first request; maintaining location information identifying a location within said content where playback of said content on said mobile handset was stopped; receiving a second request to resume playback of said content on said mobile handset; and resuming playback of said content on said mobile handset based on said location information in response to said second request.
 20. The medium of claim 19, wherein: said second request comprises a request to resume playback of said content on said mobile handset at a precise location within said content, wherein said precise location is one of the following: said location within said content where playback of said content on said mobile handset was stopped, and a user-specified location that differs from said location within said content where playback of said content on said mobile handset was stopped; and the method further comprises: generating multiple data blocks, wherein each data block represents a portion of said content, and wherein each data block has a unique starting location within said content; and determining which one of said multiple data blocks has a starting location that aligns with said precise location; wherein playback of said content on said mobile handset is resumed at said precise location by streaming a data block having a starting location that aligns with said precise location to said mobile handset.
 21. A method for playing digital content on a mobile handset, comprising: receiving a first request to play content on said mobile handset; initiating playback of said content on said mobile handset in response to said first request; receiving a second request to stop playback of said content on said mobile handset; stopping playback of said content on said mobile handset in response to said second request; gathering information used for determining a first location within said content where playback of said content on said mobile handset was stopped; receiving a third request to resume playback of said content on said mobile handset; and resuming playback of said content on said mobile handset based on said gathered information in response to said third request.
 22. The method of claim 21, wherein initiating playback of said content on said mobile handset in response to said first request comprises: requesting said content from a service unit; receiving a stream of said content from said service unit; and playing said stream of said content on said mobile handset.
 23. The method of claim 22, wherein: initiating playback of said content on said mobile handset in response to said first request further comprises initiating a timer upon playing said stream of said content on said mobile handset; stopping playback of said content on said mobile handset in response to said second request comprises stopping said timer; and gathering information used for determining a first location within said content where playback of said content on said mobile handset was stopped comprises: gathering information representing time elapsed between initiating said timer and stopping said timer; and transmitting said gathered information to said service unit, wherein said service unit determines said first location based on said gathered information.
 24. The method of claim 23, wherein: resuming playback of said content on said mobile handset based on said gathered information in response to said second request receiving a third request to resume playback of said content on said mobile handset comprises: transmitting a command to said service unit to resume streaming of said content to said mobile handset; receiving said first location from said service unit; and displaying said first location on said mobile handset; wherein streaming of said content to said mobile handset resumes from said first location upon receiving a user command to resume playback of said content on said mobile handset at said first location.
 25. The method of claim 21, wherein said content comprises one or more of: audio content and video content.
 26. A system for playing digital content, comprising: a mobile handset configured to: receive a first request to play content on said mobile handset; initiate playback of said content on said mobile handset in response to said first request; receive a second request to stop playback of said content on said mobile handset; stop playback of said content on said mobile handset in response to said second request; gather information used for determining a first location within said content where playback of said content on said mobile handset was stopped; receive a third request to resume playback of said content on said mobile handset; and resume playback of said content on said mobile handset based on said gathered information in response to said third request.
 27. The system of claim 26, wherein said mobile handset is further configured to initiate playback of said content on said mobile handset by: requesting said content from a service unit; receiving a stream of said content from said service unit; and playing said stream of said content on said mobile handset.
 28. The system of claim 27, wherein: said mobile handset is further configured to initiate playback of said content on said mobile handset by initiating a timer upon playing said stream of said content on said mobile handset; said mobile handset is further configured to stop playback of said content on said mobile handset by stopping said timer; and said mobile handset is further configured to gather information used for determining a first location within said content where playback of said content on said mobile handset was stopped by: gathering information representing time elapsed between initiating said timer and stopping said timer; and transmitting said gathered information to said service unit, wherein said service unit determines said first location based on said gathered information.
 29. The system of claim 28, wherein said mobile handset is further configured to resume playback of said content on said mobile handset based on said gathered information in response to said third request by: transmitting a command to said service unit to resume streaming of said content to said mobile handset; receiving said first location from said service unit; and displaying said first location on said mobile handset; wherein streaming of said content to said mobile handset resumes from said first location upon receiving a user command to resume playback of said content on said mobile handset at said first location.
 30. The system of claim 26, wherein said content comprises one or more of: audio content and video content. 